<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 一,组合式继承(伪经典继承)
      function Fu() {
        this.a = [1, 2, 3, 4, 5];
      }
      Fu.prototype.say = function () {
        console.log("我是父构造函数里的方法");
      };
      // 使用原型链继承父构造函数的方法
      Son.prototype = new Fu();
      Son.prototype.constructor = Son;
      function Son() {
        // 使用call改变父构造函数的属性,让里面的属性指向子构造函数
        Fu.call(this);
      }
      const son = new Son(); 
      son.a.push("我是被后添加进来的");
      console.log(son);

      
      // 一,为什么需要组合式继承?
      // 因为原型链继承专门用来继承方法,构造函数用来继承属性,所以我们需要两个都继承的话就使用组合式继承
    
      
    </script>
  </body>
</html>
